<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>String字符串</title>
</head>
<body>
<script>
    /*在底层字符串是以字符数组的形式保存的
    * ["h","e"，"l","l","e"，"w","o","r","l","d"]
    *   1.charAt()可以返回指定位置的字符
    *   2.charCodeAt()获取指定位置字符串的unicode编码
    *   3.String.formCharCode()根据字符编码获取字符
    *   4.concat()链接2个或者多个字符串
    *   5.indexof()检索一个字符串中是否含有指定内容
    *               如果字符串中含有该内容，则会返回 其第一次出现的索引
    *               如果在字符串中没找到，则返回-1
    *               可以指定第2个参数，指定开始查找位置
    *   6.lastindexof() 该方法于indexof一样
    *                   不同的是indexof从前往后找
    *                   lastindexof()从后往前找
    *                   也可以指定查找的位置
    *   7.slice()可以从字符串中截取指定的内容
    *           参数:1.开始位置索引(包含开始位置)
    *                2.结束位置索引(不包含结束位置)
    *                   可以省略第二个参数，表示第一个参数后面的都要提取出来
    *                   第二个参数可以是-1，表示倒数第1
    *              如果参数是空串"" 则每一个字符都拆分为数组中的一个元素
    *   8.substring()可以截取字符串 跟slice类似
    *           参数:1.开始位置索引(包含开始位置)
    *                2.结束位置索引(不包含结束位置)
    *               第2个参数不可以是-1 如果传递的是一个负数，则默认为0
    *               第二个参数小于0， 则自动调正参数的位置
    *   9.substr()截取字符串
    *      参数1.截取开始索引的位置 (包含开始索引)
    *          2.截取的长度
    *   10.split() 可以将一个字符串拆分成数组
    *       参数.需要一个字符串作为参数，将会根据字符串去拆分数组  用,逗号 或者用d作为参数
    *   11.toUpperCase()将字符串转换为大写并返回
    *
    * */
    //举例1
    var str="hello world";
    console.log(str);//返回hello world
    console.log(str[0]);//返回h
    console.log(str.length);//返回11
    //举例2
    var result=str.charAt(1);//取出索引为1的字符  var result=str.charAt(1);== var result=str[1];
    console.log(result);//返回e
    //举例3
    var result1=str.charCodeAt(0);//获取指定位置字符串的unicode编码
    console.log(result1);//返回的是Unicode编码的值的大小 h的Unicode编码的值是104 返回值是104
    //举例4
    var result2=String.fromCharCode(104);//根据字符编码获取字符
    console.log(result2);// 返回h
    //举例5
    var result3=str.concat("你好","再见");
    console.log(result3);
    //举例6
    var result4=str.indexOf("e");//检索字符串str中是否有e
    console.log(result4);//如果有则返回其第一次出现的索引 e的索引是1 那么返回1

    var result5=str.indexOf("l");//检索字符串str中是否有l 有2个l
    console.log(result5);//如果有则返回其第一次出现的索引 l的索引是2,3 那么返回2

    var result6=str.indexOf("f");//检索字符串str中是否有f
    console.log(result6);//如果么有 则返回-1

    var result7=str.indexOf("l",3);//3是指从索引3这个位置寻找是否有L这个内容 有就返回值
    console.log(result7);//返回所引值3 ll共2个 索引2 索引3 是 从3开始索引就是返回3
    //举例7
    var str1="abcmsdshjkadhadheo";
    result8=str1.lastIndexOf("a");//从后面往前数第一个 的索引值 是13
    console.log(result8);
    //举例8
    var result9=str1.slice(1,2);//从索引1开始包含 到索引2结束 不包含索引2
    console.log(result9);//返回b

    var result10=str1.slice(2);//以省略第二个参数，表示第一个参数后面的都要提取出来 表示索引2后面的所有数提取
    console.log(result10);// 返回cmsdshjkadhadheo 包含索引2的值c

    var result11=str1.slice(5,-1);//从索引5开始截取直到倒数第一个 -1指的是倒数第一个
    console.log(result11);//返回dshjkadhadhe 包含索引5的值d
    //举例9
    var result12=str1.substring(0,3);//从索引0开始包含索引0 到索引3 不包含3 截取数据
    console.log(result12);//返回值abc

    var result13=str1.substring(1,-1);//var result13=str1.substring(1,-1)==var result13=str1.substring(1,0)
    console.log(result13);// 返回a
    //举例10
    var result14=str1.substr(1,3);//第一个参数1表示 从索引1开始截取，长度为3
    console.log(result14);//返回bcm
    //举例10
    var str2="abc,def,efr,cdw,enm";
     result15=str2.split(",");
     console.log(result15);
     console.log(typeof result15);//返回Object
     console.log(Array.isArray(result15));//返回true 说明是数组
    console.log(result15[0]);//返回数组中索引为0的哪个字符串  返回abc
    console.log(result15.length);//返回5

    var str4="abcdfghhjkk";
    result20=str4.split("");//如果是空串，则挨个加上逗号
    //如果参数是空串"" 则每一个字符都拆分为数组中的一个元素
    console.log(result20);//返回值["a", "b", "c", "d", "f", "g", "h", "h", "j", "k", "k"]
    //举例11
    var str3="absddfklgj";
    result16=str3.toUpperCase();//转换为大写字母
    console.log(result16);//返回ABSDDFKLGJ
    //举例12
    var str4="ASDDFGFHGJHKJLK";
    result17=str4.toLowerCase();//转换为小写字母
    console.log(result17);//返回asddfgfhgjhkjlk
</script>
</body>
</html>